package cn.aitrox.ry.service.anno.api;

import cn.aitrox.ry.bean.CommonPageInfo;
import cn.aitrox.ry.bean.RespResult;
import cn.aitrox.ry.service.anno.dto.user.task.in.TaskAnnoInfoInDto;
import cn.aitrox.ry.service.anno.dto.user.task.in.TaskJoinableSearchInDto;
import cn.aitrox.ry.service.anno.dto.user.task.in.UserTaskJoinInDto;
import cn.aitrox.ry.service.anno.dto.user.task.in.UserTaskSearchInDto;
import cn.aitrox.ry.service.anno.dto.user.task.out.UserTaskItemDto;
import cn.aitrox.ry.service.anno.dto.user.task.series.in.UserTaskSeriesSearchInDto;
import cn.aitrox.ry.service.anno.dto.user.task.series.out.UserTaskSeriesDto;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface UserTaskApi {

    @GetMapping(value = "/anno/user/doing/task/list")
    List<UserTaskItemDto> userDoingTaskList();

    @PostMapping(value = "/anno/user/task/search")
    CommonPageInfo<UserTaskItemDto> search(@RequestBody UserTaskSearchInDto input);

    @PostMapping(value = "/anno/task/joinable/search")
    CommonPageInfo<UserTaskItemDto> joinableSearch(@RequestBody TaskJoinableSearchInDto input);

    @PostMapping(value = "/anno/task/join")
    RespResult userTaskJoin(@RequestBody UserTaskJoinInDto input);

    @PostMapping(value = "/anno/user/task/series/search")
    CommonPageInfo<UserTaskSeriesDto> userTaskSeriesSearch(@RequestBody UserTaskSeriesSearchInDto input);

    @PostMapping(value = "/anno/task/anno/info")
    RespResult<UserTaskItemDto> taskAnnoInfo(@RequestBody TaskAnnoInfoInDto input);
}
